s = 0
'''
【字典的相关操作方法】
字典的方法            描述说明
d.keys()            获取所有的key数据
d.values()          获取所有的value数据
d.pop(key,default)  key存在获取相应的value，同时删除key-value对，否则获取默认值
d.popitem()         随机从字典中取出一个key-value对，结果为【元组】类型，同时将该key-value从字典中删除
d.clear()           清空字典中所有的key-value对
'''

d = {1001: '张三', 1002: '李四', 1003: '王五'}
print(d)

# 添加元素 d[key]=value
d[1004] = '赵六'  # 直接使用赋值运算符进行赋值
print(d)

# 获取字典中所有的key
print(d.keys(), type(d.keys()))  # dict_keys([1001, 1002, 1003, 1004]) <class 'dict_keys'>
# 返回的是一个dict_keys对象，需要使用list()函数将其转换为列表，或者使用tuple()函数将其转换为元组
print(list(d.keys()))
print(tuple(d.keys()))

# 获取字典中所有的value
values = d.values()
print(values, type(values))  # dict_values(['张三', '李四', '王五', '赵六']) <class 'dict_values'>
# 返回的是一个dict_values对象，需要使用list()函数将其转换为列表，或者使用tuple()函数将其转换为元组
print(list(d.values()))
print(tuple(d.values()))

# 将字典中的数据转化为key-value键值对的形式，以元组的方式进行显示
lst = list(d.items())  # items()与zip()执行的是相反的过程
print(lst)  # [(1001, '张三'), (1002, '李四'), (1003, '王五'), (1004, '赵六')]

d = dict(lst)
print(d)

# 使用pop函数
print(d.pop(1001))  # 张三 先把这个值取出来，然后在字典d中删除这个元素
print(d)  # {1002: '李四', 1003: '王五', 1004: '赵六'}

print(d.pop(1001, '不存在'))  # 可以在pop中指定未存在这个元素时的默认返回值

# 随机删除
print(d.popitem())  # 随机删除，随机取出一个key-value对，以元组的形式返回,并且字典中删除这个元素
print(d)  # {1002: '李四', 1003: '王五'}

# 清除所有
d.clear()
print(d)  # {}

# python中万物皆对象，每个对象都有一个bool值，当对象为空时，bool值为False，否则为True
print(bool(d))  # 空字典、元组、列表的布尔值都为 False

# 删除字典
del d
print(d)  # NameError: name 'd' is not defined
